<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.9.0">
  <meta charset="utf-8">
  
  <title>Interledger Approaches(选) | 探花需拔根</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
    <meta name="keywords" content="Bluarry,bluarry,Blog,探花,拔根,博客,区块链,算法,acm">
  
  <meta name="description" content="本文是翻译字IEEE文章《Interledger Approaches》,有不准确的地方，欢迎指出来。 SIDECHAINS  ​       侧链的基本思想是将一些资产从一个blockchain，通常被称为主或母链，转移到一个或更多其他称为侧链的链，以在那里进行一些交易。稍后，资产可以转移回原始链。使用侧链的一个共同动机是交易确认时间。侧链上的事务延迟通常比主链上的事务延迟小得多。主链可以是比特">
<meta name="keywords" content="区块链,侧链,翻译">
<meta property="og:type" content="article">
<meta property="og:title" content="Interledger Approaches(选)">
<meta property="og:url" content="/2020/03/25/2020-03-25-Interledger_Approaches(选)/index.html">
<meta property="og:site_name" content="探花需拔根">
<meta property="og:description" content="本文是翻译字IEEE文章《Interledger Approaches》,有不准确的地方，欢迎指出来。 SIDECHAINS  ​       侧链的基本思想是将一些资产从一个blockchain，通常被称为主或母链，转移到一个或更多其他称为侧链的链，以在那里进行一些交易。稍后，资产可以转移回原始链。使用侧链的一个共同动机是交易确认时间。侧链上的事务延迟通常比主链上的事务延迟小得多。主链可以是比特">
<meta property="og:locale" content="zh.yml">
<meta property="og:image" content="https://cdn.bluarry.top/wp-content/uploads/2020/02/figure7.jpg">
<meta property="og:image" content="https://cdn.bluarry.top/wp-content/uploads/2020/02/table1.jpg">
<meta property="og:updated_time" content="2020-03-25T02:09:04.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Interledger Approaches(选)">
<meta name="twitter:description" content="本文是翻译字IEEE文章《Interledger Approaches》,有不准确的地方，欢迎指出来。 SIDECHAINS  ​       侧链的基本思想是将一些资产从一个blockchain，通常被称为主或母链，转移到一个或更多其他称为侧链的链，以在那里进行一些交易。稍后，资产可以转移回原始链。使用侧链的一个共同动机是交易确认时间。侧链上的事务延迟通常比主链上的事务延迟小得多。主链可以是比特">
<meta name="twitter:image" content="https://cdn.bluarry.top/wp-content/uploads/2020/02/figure7.jpg">
  
  
    <link rel="icon" href="/favicon.ico">
  
  <link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
  <link rel="stylesheet" href="/css/style.css">
  <script src="/js/pace.min.js"></script>
  

  
  

  
<!-- Matomo -->
<script type="text/javascript">
	var _paq = window._paq || [];
	/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
	_paq.push(['trackPageView']);
	_paq.push(['enableLinkTracking']);
	(function() {
	  var u="//matomo.bluarry.top/";
	  _paq.push(['setTrackerUrl', u+'matomo.php']);
	  _paq.push(['setSiteId', '3']);
	  var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
	  g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
	})();
  </script>
  <!-- End Matomo Code -->

</head>
</html>
<body>
  <div id="container">
      <header id="header">
    <div id="banner"></div>
    <div id="header-outer">
        <div id="header-menu" class="header-menu-pos animated">
            <div class="header-menu-container">
                <a href="/" class="left">
                    <span class="site-title">探花需拔根</span>
                </a>
                <nav id="header-menu-nav" class="right">
                    
                    <a  href="/">
                        <i class="fa fa-home"></i>
                        <span>主页</span>
                    </a>
                    
                    <a  href="/archives">
                        <i class="fa fa-archive"></i>
                        <span>归档</span>
                    </a>
                    
                    <a  href="/friends">
                        <i class="fa fa-envira"></i>
                        <span>友链</span>
                    </a>
                    
                    <a  href="/about">
                        <i class="fa fa-user"></i>
                        <span>关于我</span>
                    </a>
                    
                </nav>
                <a class="mobile-header-menu-button">
                    <i class="fa fa-bars"></i>
                </a>
            </div>
        </div>
        <div id="header-row">
            <div id="logo">
                <a href="/">
                    <img src="/images/avatar/me-130x130.jpg" alt="logo">
                </a>
            </div>
            <div class="header-info">
                <div id="header-title">
                    
                    <h2>
                        清风觅影
                    </h2>
                    
                </div>
                <div id="header-description">
                    
                    <h3>
                        致需极,守静笃
                    </h3>
                    
                </div>
            </div>
            <nav class="header-nav">
                <div class="social">
                    
                        <a title="Home"  href="/">
                            <i class="fa fa-home fa-2x"></i></a>
                    
                        <a title="Github" target="_blank" href="//github.com/bluarry">
                            <i class="fa fa-github fa-2x"></i></a>
                    
                        <a title="mail" target="_blank" href="mailto://bluarry@qq.com">
                            <i class="fa fa-envelope-o fa-2x"></i></a>
                    
                </div>
            </nav>
        </div>
    </div>
</header>
      <div class="outer">
        <section id="main" class="body-wrap"><article id="post-2020-03-25-Interledger_Approaches(选)" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-inner">
    
      <header class="article-header">
        
  
    <h1 class="post-title" itemprop="name">
      Interledger Approaches(选)
    </h1>
    <div class="post-title-bar">
      <ul>
          
              <li>
                  <i class="fa fa-book"></i>
                  
                      <a href="/categories/学习分享/">学习分享</a>
                  
              </li>
          
        <li>
          <i class="fa fa-calendar"></i>  2020-03-25
        </li>
        <li>
          <i class="fa fa-eye"></i>
          <span id="busuanzi_value_page_pv"></span>
        </li>
      </ul>
    </div>
  

          
      </header>
    
    <div class="article-entry post-content" itemprop="articleBody">
      
            
            <p>本文是翻译字IEEE文章《Interledger Approaches》,有不准确的地方，欢迎指出来。<br><!--moew--></p>
<h2>SIDECHAINS</h2>

<p>​       侧链的基本思想是将一些资产从一个blockchain，通常被称为<em>主</em>或<em>母链</em>，转移到一个或更多其他称为<em>侧链的链</em>，以在那里进行一些交易。稍后，资产可以转移回原始链。使用侧链的一个共同动机是交易确认时间。侧链上的事务延迟通常比主链上的事务延迟小得多。主链可以是比特币或以太坊，基本确认时间分别为10分20秒(或者更长的时间，如果需要更高的安全性的话)。使用侧链的第二个原因侧链可能支持主链可能没有编程能力智能合约，甚至是实验性的功能。最后，侧链上的交易成本可能是(显著的)低于主链。</p>
<p>​       减少的交易时间和交易成本可以提高可扩展性。为了实现上述优势，侧链可以允许账本有自己的治理和参与规则。另一方面，如果侧链解决方案需要代码来查看和处理互连账本的整个区块链，则计算成本较高，因此侧链解决方案的复杂性可能很高。简化的支付验证（SPV）证明可以降低此成本。</p>
<p>​       市场力量可以影响主链和侧链的联合运作。从技术上讲，开发新的区块链和替代硬币虽然很容易，但要为其创建市场却很困难。 建立挖矿激励机制需要一个市场。然而，如果新区块链中的资产能够安全地绑定到主要区块链（如比特币）中的现有资产，那么这些问题中的许多可能会得到缓解或规避。例如，有可能在侧链中发出交易费用，以使侧链矿工可以将其交换为主链资产，而无需与侧链或主链中的其他方进行任何交互.</p>
<p>​       最典型的侧链逻辑涉及以下步骤:</p>
<pre><code>1. 冻结主链中的某些资产，以便以后可以将其冻结。

2. 在侧链中创建（或冻结）相应资产。

3. 在侧链中执行交易，可能在两个或多个侧链之间进一步移动资产。

4. 删除（或冻结）侧链中部分或全部已创建（或未冻结）的资产。 这形成了关于资产如何在主链中进一步分配的协议。

5. 解冻主链中的资产，根据反映在侧链中的协议的主链上的协议，将其移至一个或多个参与方
</code></pre>

<p>​       虽然上述大多数都可以以相对简单的方式在技术上实现，但棘手的部分是冻结主链中的资产，以便以后可以安全地解冻，并根据侧链中的协议进行分配。现有的侧链方法彼此不同，受信任的人可以解冻主链中的资产，主链与侧链之间的信任级别以及发生纠纷时的解决程序。例如，如果主链的验证者（矿工）完全不知道侧链，则冻结主链中的资产时，应确保侧链中的活动产生证据，证明在主链上呈现时，被视为有效的占有验证，允许移动主链上的部分或全部冻结资产。此外，当在侧链中创建更多交易时，随着资产再次移动，在侧链中生成的一些较旧的证据将失效。</p>
<p>​   Backet al [1]为侧链定义以下要求:</p>
<ul>
<li>无论资产的当前持有者是谁，或者没有其他人（包括以前的持有者），资产都应能够移回主链。<p></p></li>
<li><p>不诚实的一方不应该有能力阻止资产转移的发生。</p></li>
<li><p>转移应该是原子的，即它们应该完全发生或根本不发生。</p></li>
<li><p>应当对侧链进行防火墙保护：侧链中的错误会导致该链中资产的创建（或盗窃），而不应引发其他链上的资产的创建或盗窃</p></li>
<li><p>区块链重组也应保持整洁，即使在转移期间也应如此。</p></li>
<li>不应要求用户跟踪未积极使用的侧链</li>
</ul>

<p></p><p>​        尽管Backet al.[1]只描述了创建侧链的一些可能性（当时是未来的可能性），但该论文激发了许多商业尝试来创建和利用它们，包括Rootstock、Blockstream Sidechain 和Lightning Network。我们首先考虑下面的 the original federated pegs and Blockstream。之后，在第下一节中，我们讨论 Rootstock and merged mining,，然后在再下一节中讨论Ethereum’s Plasma，在最后一节中讨论了Cardano sidechains.</p>
<h3>FEDERATED PEGS, BLOCKSTREAM'S</h3>

<h3>ELEMENTS AND LIQUID</h3>

<p>​       federated pegs 的概念最初由Back等人在[1]的参考文献中描述。可能在此之前的其他地方，作为比特币社区民俗的一部分。A pegged sidechain 被定义为可以将主链资产转移到的侧链。然而，由于比特币区块链缺乏执行资产转移所需的脚本功能，作者提出了federated pegs，即，固定的一组已知的和半信任的节点，称为“工作人员”，负责将资产从侧链移回主链。工作人员共同同意就某些成果达成拜占庭共识，并通过签署k out of n多重签名（multi-sig）交易来表明他们在主链中的同意。在比特币的上下文中，工作人员可以简单地观察比特币链，只要他们认识到有一个他们知道的扩展，就输入他们的签名。</p>
<p>​       为了实现侧链，工作人员将同时观察主链和侧链，在主链上，验证冻结资产的初始交易仍有效且未花费，在侧链上，寻找冻结（或销毁）一些侧链资产的有效事务，同时请求它们在主链中解冻。一旦他们看到主链和侧链中的交易都是有效的，在相当长的一段时间内，他们会在主链中添加签名以解冻那里的资产。在比特币的背景下，2016年底，Elements项目首次成功实现了federated pegs。</p>
<p>​       The Elements Project是关于比特币各种实验活动的宽松集合，利用侧链。 Elements 基于``strong federation’’ 共识模型[2]，它依赖于互不信任的参与者（即工作人员）的集体行动，而不是PoW共识模型。这些功能包括块Block Signers，他们通过他们的签名参与创建块，这些签名被计算到验证所提议的块所需的阈值内；以及Watchmen，他们负责通过签署多签名事务来将资产移入和移出侧链。</p>
<p>​       Liquid是一个基于Elements框架的侧链的实现。Liquid的目标是提供一个许可的区块链，与比特币区块链相比，它具有不同的特征、能力和好处。除了更快的交易，和比特币相比的好处还包括更高的隐私。</p>
<p>​       其他区块链提案，如Stratis，最近支持基于two-way federated peg模型的侧链。</p>
<p>​       [47]中的工作讨论了为特定区块链Horizen构建侧链的方法，但可以应用于其他区块链，这些区块链实现了提议的用于将令牌（值）从主链传输到侧链的跨链传输协议。这些侧链可以采用任意共识协议，而主链（Horizen）相对于各个侧链仍然不可知。可以使用主链上的特殊交易执行令牌从主链到侧链的转移，该交易会``燃烧’’令牌并提供可以在侧链上显示的收据，以便在侧链上创建相应数量的资产;这种将价值从主链转移到侧链的方法类似于其他方法[1]，[48]。从侧链到主链的相反方向的资产转移，要求认证者签署反向资产转移.节点可以通过锁定一定数量的股份来注册为证明者。 锁定的股份总额确定了反向资产转移的数量。</p>
<h3>MERGED MINING AND ROOTSTOCK</h3>

<p>​       MERGED MINING允许对使用相同底层算法（例如SHA256散列函数）的多个DLT同时执行工作证明（PoW）. MERGED MINING可以应用于区块链，包括侧链，其块头定义包括比特币头的一部分[14]。这允许具有较低PoW率的较不受欢迎的DLT通过依靠对更受欢迎的分布式分类帐执行的PoW来获得更多PoW率，从而提高其弹性（参见[49]）。Sergio Lerner of RSK Labs 已经尝试在工作文件中分析侧链和相关技术[48]，主要是从经济激励的角度. Root-stock 最初于2014年提出，在2018年1月上旬正式启动主网后将分阶段发布。Rootstock 需要对比特币和MERGED MINING进行相对较大的更改，以实现所谓的驱动链。在驱动链中，资产的锁定和解锁由（合并的）矿工控制，而在fede-rated pegs中，资产的锁定和解锁由主链外部的工作人员完成。Drivechain是创建多个与双向挂接到比特币的链接的区块链的另一项努力。除了SPV证明外，它还使用类似于Rootstock的MERGED MINING。</p>
<h3>ETHEREUM'S PLASMA</h3>

<p>​       Plasma[50]是使用一系列智能合约创建侧链（或子区块链）的分层树的建议。以太坊区块链（根链）只需要处理来自侧链的少量提交，但侧链可以执行大量计算。每个侧链都是通过智能合约来实现的，该合约可以由其自己的一组规则和约束来支配。这包括自定义参与块生产的许可节点集的功能。Plasma sidechains use Proof-of-Stake consensus.仅在根链上以完全安全的方式进行挖矿。不同于the Lightning and Raiden Networks的严格付款，Plasma将其扩展到以太坊智能合约。验证者以区块头哈希的形式而不是子链上执行的交易的完整列表的形式向根链报告子链上发生的活动。数据仅传播给希望验证其感兴趣的特定侧链状态的各方。监视特定侧链的当事方应对欺诈行为负责。该子区块链中的状态通过欺诈证明执行，欺诈证明是智能合约逻辑的一部分，可确保所有状态转换均得到验证。欺诈证明还可以强制执行交互式协议以提取资金，类似于在闪电网络中使用HTLC的方式；这些资金提取需要在根链上发布，因此需要在以太坊区块链上进行交易所需的相同时间。</p>
<p>​       Plasma 正在被OmiseGo等项目积极开发和使用。其目标是建立对等加密货币交换平台，而Loom提供了一个SDK环境，可在自己的侧链上构建分布式应用程序， 专注于大型在线游戏和社交网络应用。</p>
<h3>CARDANO</h3>

<p>​   卡尔达诺的CSL（卡尔达诺结算层）使用侧链概念将资产从CSL移至CCL（卡尔达诺计算层）侧链，或其他支持Cardano KMZ协议的区块链[52]，以实现高效的简化付款验证（SPV）证明。CSL是Cardano的主要区块链，为了实现高安全级别，它支持非常有限的一组操作。另一方面，CCL是支持更多功能（包括实验功能）的侧链。[51]中的工作提出了构建非交互工作量证明（NiPoPoW）的过程。该过程的非交互性质是指它涉及单个消息交换，这一事实适用于在两个链之间转移资产。与传统的区块链客户端必须验证整个PoW的线性增长链不同，基于NiPoPoW的客户端可以验证某些区块链属性，该属性仅需要对数区块链的长度。NiPoPoW解决了基于PoW的共识协议的两个重要的开放性问题：构建有效的SPV客户和构建有效的侧链证明的问题。</p>
<h2>LEDGER-OF-LEDGERS APPROACHES</h2>

<p>In a ledger-of-ledgers approach，介绍了一个``super-ledger’’，目的是拥有多个类似侧链的分类帐或其他子分类帐，如图7所示。</p>
<center>
<img style="border-radius: 0.3125em;
box-shadow: 0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08);" src="https://cdn.bluarry.top/wp-content/uploads/2020/02/figure7.jpg">
<br>

<div style="color:orange; border-bottom: 1px solid #d9d9d9;
display: inline-block;
color: #999;
padding: 2px;">图七</div>

</center>

<p>然而，即使分类账方法的总体目标之一是摆脱“one chain rules them all”的范式（Polkadot白皮书[53]中的明确动机），Polkadot和Cosmos这两个主要 账本分类账代表本质上介绍了自己的关键账本，这些账本``统治’’了所有账本（就互连而言而言）。</p>
<p>​       借助类似于侧链方法的互连分类帐，ledger-of-ledgers solution在互连多个类似侧链的分类帐时可以提供高可伸缩性，但是由于存在互连分类帐，因此以高复杂度为代价。此外，侧链上的交易成本比互连分类账上的成本小。</p>
<p>​       Polkadot是Gavin Wood提出的一项提案，以太坊黄皮书的作者。Polkadot是开源的，但是大多数工作似乎是在Parity Technologies进行的。尽管Polkadot主要被描述为可扩展的异构``多链’’，但实际上它试图引入一条新的，总体上的中继链，可以在其上构建大量所谓的副链;中继链负责完成所有交易，并可用于互连无许可和许可的分类帐。通常，平行链将是使用基于Tangaora，Tendermint和HoneyBadgerBFT的特定于Polkadot的拜占庭式容错（BFT）共识算法的新型区块链。BFT进一步转变为一个类似于股权证明（PoS）的系统，定期从一组保税潜在验证器中随机选择一组验证器，使用其债券的大小（以Polkadot点代币衡量）作为其股权的度量。当然，这取决于债券，因此也取决于通过交换或其他机制具有实际价值的基础Polkadot代币。Polkadot本身不提供任何固有的应用程序功能，只允许副链（包括以太坊和比特币）在它们之间中继数据并最终实现价值。</p>
<p>​   Polkadot可以包含多个副链，在隐私和信任方面具有不同的特征。可伸缩性是通过将事务分散到各个链上来实现的，允许它们并行处理事务。可以通过绑定DOT token来创建平行链。另一方面，可以通过取消绑定DOT token来删除副链。这实现了平行链之间的共享安全模型，该模型使各个链在创建时即可立即利用整个系统的集体安全性。</p>
<p>​   Cosmos是Interchain Foundation的一个项目，Interchain Foundation是瑞士基金会，于2017年初由All In Bits，Inc.的人员注册。其结构与Polkadot相似。Cosmos核心基于BFT区块链技术Tendermint。目标是建立一个可以彼此互操作的PoS区块链异构网络。因此，开发人员可以在Tendermint核心引擎之上构建公共和私有区块链。此外，Cosmos明确旨在维护侧链的主权</p>
<p>​   Cosmos Hub是与许多其他独立的并行区块链（称为区域）互连的主要区块链[54]。The Cosmos hub and zones 可以实现经典的BFT共识算法，例如Tendermint。Cosmos Hub的主要token是Atom，用于对区块链进行抵押和管理。与Polkadot不同，Cosmos不需要绑定原子就可以创建新区域。每个区域可以有自己的治理机制和策略。The hub负责确保单个用户或区域持有的token总数的全局不变性。从The hub的角度来看，区域是一个多资产动态成员多重签名帐户，可以使用区块链间通信（IBC）协议发送和接收token。与Polkadot不同的是，区域仅将交易提交给集线器进行区块链间交易。</p>
<p>​   一个特殊区域，称为节制区域，负责Cosmos网络与以太坊或比特币等其他区块链之间的交易。为此，桥接区域必须在Cosmos网络端和互连的区块链上都遵循事务。对于后者，可以使用互连区块链上的桥接账户（例如以太坊）来向其他以太坊账户发送和接收以太币token。当桥接合约收到以太币代币时，会在桥接区域上创建一个相应的账户，并在``bridged ether’’中建立相应的余额。在相反的方向上，当将以太币从桥接账户发送到另一个以太坊账户时，对应的桥接以太币会被破坏.</p>
<p>​   English等人[18]描述了Uberledger框架，一个分层的元区块链层和一个开放源代码的接口，其目的是保存与过去跨区块链交易相关的所有信息，从而允许各方的行为累积，形成声誉和信任的基础。</p>
<p>​   Ripple的目标是支持使用区块链进行全球汇款。Ripple在开发第V节中讨论的分类账协议（ILP）方面发挥了重要作用，但是，在最近的版本中，ILPv4不依赖DLT进行支付（或资产转移）。然而，Ripple还开发了XRP，Ripple的代币或``数字资产用于支付’’以及它自己的区块链Ripple Consensus Ledger（RCL），它是XRP的根目录，具有分散的治理和共识机制。 任何类型的分类账和各种资产之间的全球支付和价值交换的目标。因此，Ripple允许跨所有类型的分类账进行付款和资产交换，从传统的银行分类账和法定货币到区块链上的代币，钱包中的加密货币以及任意类型的资产.因此，它可以被认为是账本分类账技术，具有相应的特性，例如比传统的公共区块链（例如比特币和以太坊）更快，更便宜的交易，但具有类似的分散特征.不过，Ripple预计，ILP将增强RCL的影响力，并扩大其在全球支付中的作用。</p>
<p>​   上述项目试图构建另一种分布式账本技术，以允许一组底层区块链（副链、侧链）在彼此之间传递信息和价值。波尔卡多和宇宙都是依靠拜占庭的共识来实现这一点的，但都是把拜占庭的共识变成了一个结合的共识，从而使之成为一个PoS系统。因此，它们在分类账级别的安全性主要取决于创建另一个生态系统和token，这些token显然具有价值，因为它们在生态系统中起着纽带或股份的作用，从而赋予了生态系统权力。这种做法是否具有可持续的社会价值，应仔细评估.</p>
<p>​   与桥接方法类似，ledger-of-ledgers法（如Polkadot和Cosmos）可以提供一个分散的交易所，不需要交易方在线，就像直接使用原子交叉链交易的点对点交易方一样。去中心化交易所在其自己的区块链（超级账本区块链）上运行，并接收各方的交易请求。交易请求由区块链节点执行，从而提供了一个分散的信任系统，用于可靠地执行交易。</p>
<h2>DISCUSSION AND COMPARISON</h2>

<p>下表1总结了本次调查提出的分类账解决方案的比较。</p>
<center>
<img style="border-radius: 0.3125em;
box-shadow: 0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08);" src="https://cdn.bluarry.top/wp-content/uploads/2020/02/table1.jpg">
<br>

<div style="color:orange; border-bottom: 1px solid #d9d9d9;
display: inline-block;
color: #999;
padding: 2px;">表一</div>

</center>

<h3>A. TRANSFER OR EXCHANGE OF VALUE</h3>

<p>​       哈希锁和时间锁机制用于在两个区块链上的两方之间交换value(token)。因此，原子交叉链交易，跨网络交易，ILP和一些使用哈希和时间锁定机制的桥接解决方案实现了价值交换，而所有其他解决方案都实现了价值转移， 因此，价值在一个链上被锁定或破坏，而在另一个链上被解锁或创造。一个关键的区别是，价值交换取决于交易资产的汇率，而价值转移则不是这种情况。 转移价值时，相应资产由新链控制。</p>
<h3>B. INTERCONNECTION TRUST MECHANISM</h3>

<p>​       互连信任机制定义了记录互连事务的不可变状态的位置。通过哈希锁定和时间锁定机制，状态与互连的事务一起记录在分类帐中。这类似于桥接和侧链方法，但是在某些情况下，某些节点（验证者）需要查看和/或处理整个或部分子集（在简化付款验证（SPV）证明的情况下） 两个相互关联的链。另一方面，ledger-of-ledgers 方法需要一个互连分类账，其中与不同分类账的互连相关的状态存在，这使得它们更加复杂。</p>
<h3>C. COMPLEXITY</h3>

<p>​       哈希锁和时间锁涉及哈希和比较，它们本质上是简单的机制。而且，通过存储相同的哈希值并依赖于相同的哈希函数，可以使用哈希锁和时间锁来加密链接不同链上的事务，从而需要解锁相同的秘密。因此，使用哈希锁定和时间锁定机制的分类帐解决方案具有较低的复杂性。然而，取决于确定交易延迟的互连分类账中使用的共识机制，而这又取决于互连分类账是公开的还是被许可的，此类解决方案中定义的超时顺序可能会很长大约一两天。实际上，基于PoW的共识的交易延迟通常比基于PoS，PoA和BFT的共识机制要长得多。后两种机制通常用于许可账本。因此，敲定中间人交易，特别是涉及公共分类账时，可能会特别缓慢。</p>
<p>​       跨网络的事务和ILP产生了跨节点网络传播事务的路由成本。与原子跨链事务相比，这使它们的计算成本更高，尽管可以更快地完成事务。但是，就所需的计算资源而言，路由成本往往比下载和处理整个链的成本低几个数量级，因此我们可以推论这些机制在计算上比桥接，侧链和分类账更轻 分类方法。</p>
<p>​       桥接和侧链方法会导致更高的计算成本，因为它们可能需要一组节点（例如，工作人员）来查看和处理整个互连链。由于要求工作人员继续下载和处理所有互连链的新块，因此此操作在计算上比原子跨链事务处理显着代价更大。但是，这大大加快了事务完成的时间，因为它使长时间锁定超时的需求变得无关紧要。这种机制的计算成本的一个特别严重的方面与引导功能有关，因为处理整个链是一个固有的缓慢和资源要求较高的操作（例如，对于比特币，截至2019年1月，它相当于下载和处理超过200 GB的数据）。SPV证明（第VII-D节）之类的技术允许对互连链中残留的数据进行部分处理，但会损害安全性。注意，对于基于散列和时间锁的桥接方法，复杂度代价可以低于需要查看和处理整个互连链的方法；但是，这种桥接方法与原子性跨链交易相比，在双方之间具有点对点交互性的情况下具有更高的复杂性，因为前者提供了附加功能，例如验证和发现服务。Ledger-of-ledgers approaches也是复杂的解决方案，因为它们需要另一个相互连接的分类账。</p>
<h3>D. SCALABILITY</h3>

<p>​       可伸缩性是根据解决方案支持的每单位时间内的事务总数来讨论的。从这个意义上说，单一的分类账具有低的可扩展性。与单个分类帐相比，跨两个链的原子跨链事务和通常包含两个链的桥接方法可提供更高的可伸缩性，因为它们可以利用事务局部性来减少跨两个链的事务数量。Sidechains and ledger-of-ledgers approaches 涉及多个侧链，因此可以进一步利用局部性来减少侧链和主链或互连链之间的事务，并在这样做时实现比专注于两个链互连的解决方案更高程度的可扩展性。此外，尽管大多数侧链和分类账方法具有两级层次结构，但一些提案（例如以太坊的Plasma）则更进一步，并提出了具有多级侧链的层次结构。</p>
<p>​       跨网络和ILP的交易以接近于在Internet中实现可伸缩性的方式实现高可伸缩性：通过使用中间节点将交易从发起方路由到接收方，并将交易在这些中间节点之间分布在整个网络中。通过中间节点分配事务来提高可伸缩性的方法以及考虑主（或互连）链和侧链的层次结构的方法在假定和支持的信任方面根本不同。在遵循一系列使用哈希和时间锁定机制的互连小额支付通道之后，通过中间节点路由支付不假定中间节点之间的信任。另外，小额支付渠道通过使用链下交易实现可伸缩性，其中交易在各方之间以对等方式执行，因此不会产生交易确认延迟或链上交易的交易成本。另一方面，与主链或互连链上的信任级别相比，侧链和分类账解决方案可实现可伸缩性，但代价是降低了对侧链中资产交易的信任级别。</p>
<p>​       在这一点上，值得注意的是，为了提高区块链在交易吞吐量方面的可扩展性，已经进行了大量工作，主要集中在分片技术上。这个想法是将每笔交易的验证分配给总验证者集合的全部（即子集），而不是整个验证者集合。分担验证负载意味着每个验证器仅负责一部分提交的事务，因此以安全为代价任意增加验证吞吐量。通过可验证的随机分布机制选择碎片对于防止恶意勾结至关重要。Omniledger [55]和RSCoin [56]提出了针对无权限区块链的基于高分片的解决方案，而Channels [57]引入了一种在Hyperledger Fabric上实现的针对许可区块的分片机制。但是，针对可分类账内交易的可扩展性矢量与我们正在本文中探索的分类账操作正交。</p>
<h3>E. TRANSACTION COST</h3>

<p>​       我们的最终比较标准考虑了各种解决方案的交易成本。对于涉及两个分类账相互之间连接的解决方案（原子跨链交易和情形就是这种情况），成本由两个分类账上的交易成本决定。跨网络和ILP的事务沿着作为支付渠道互连的支付路径转发。支付渠道仅包括两个链上交易，用于打开和关闭支付渠道，而所有中间交易均发生在链下。因此，如果存在许多中间链下交易，则这些解决方案的交易成本会非常低。注意，对于ILP的大多数观察结果与跨网络交易方法相同，因为ILP可以使用散列锁和时间锁方法（在跨网络交易方法中使用），并且支付是跨支付渠道网络路由的。主要区别在于，ILP侧重于为互连定义一个开放协议。中间人，如ILP中的连接器，可以收取转发支付的费用。使用侧链和分类账方法，侧链上的交易成本通常小于主链或互连链上的交易成本。总成本取决于侧链内部进行的交易百分比以及侧链与主链之间的交易百分比。当交易局部性很高时，即大部分交易在侧链内部进行时，总成本会更低。</p>
<h2>参考文献</h2>

<p>[1] A. Back, M. Corallo, L. Dashjr, M. Friedenbach, G. Maxwell, A. Miller, A. Poelstra, J. Timón, and P. Wuille, ``Enabling blockchain innovations with pegged sidechains,’’ Blockstream, Victoria, BC, Canada, Tech. Rep., 2014. Accessed: Jul. 9, 2019. [Online]. Available: <a href="http://www.blockstream.com/sidechains.pdf" target="_blank" rel="noopener">http://www.blockstream.com/sidechains.pdf</a></p>
<p>[2] J. Dilley, A. Poelstra, J. Wilkins, M. Piekarska, B. Gorlick, and M. Friedenbach, ``Strong federations: An interoperable blockchain solu-tion to centralized third-party risks,’’ CoRR, Dec. 2016. [Online]. Available: <a href="https://arxiv.org/abs/1612.05491" target="_blank" rel="noopener">https://arxiv.org/abs/1612.05491</a></p>
<p>[18] S. M. English, F. Orlandi, and S. Auer, ``Disintermediation of inter-blockchain transactions,’’ CoRR, Sep. 2016. [Online]. Available: <a href="https://arxiv.org/abs/1609.02598" target="_blank" rel="noopener">https://arxiv.org/abs/1609.02598</a></p>
<p>[47] A. Garoffolo and R. Viglione. (Oct. 2018).Sidechains: Decoupled Consensus Between Chains. Accessed: Jul. 9, 2019. [Online]. Available: <a href="https://www.horizen.global/assets/les/Horizen-Sidechains-Decoupled-Consensus-Between-Chains.pdf" target="_blank" rel="noopener">https://www.horizen.global/assets/les/Horizen-Sidechains-Decoupled-Consensus-Between-Chains.pdf</a></p>
<p>[48]S. D. Lerner. (Apr. 2016). Drivechains, Sidechains, and Hybrid 2-Way Peg Designs. [Online]. Available: <a href="https://docs.rsk.co/Drivechains_Sidechains_and_Hybrid_2-way_peg_Designs_R9.pdf" target="_blank" rel="noopener">https://docs.rsk.co/Drivechains_Sidechains_and_Hybrid_2-way_peg_Designs_R9.pdf</a></p>
<p>[50]J. Poon and V. Buterin. (Aug. 2017).Plasma: Scalable Autonomous Smart Contracts. [Online]. Available: <a href="https://plasma.io" target="_blank" rel="noopener">https://plasma.io</a></p>
<p>[51] A. Kiayias, A. Miller, and D. Zindros, ``Non-interactive proofs of proof-of-work,’’IACR Cryptol. ePrint Arch., 2017, pp. 1-42.</p>
<p>[52] Cardano Sidechains. Accessed: Jul. 9, 2019. [Online]. Available: <a href="https://whycardano.com/#sidechains" target="_blank" rel="noopener">https://whycardano.com/#sidechains</a></p>
<p>[53] L. Wood. (Nov. 2016).Polkadot: Vision for a Heterogenous Multi-Chain Framework. Accessed: Jul. 9, 2019. [Online]. Available: <a href="https://polkadot.network/PolkaDotPaper.pdf" target="_blank" rel="noopener">https://polkadot.network/PolkaDotPaper.pdf</a></p>
<p>[54] Cosmos Whitepaper. Accessed: Jul. 9, 2019. [Online]. Available: <a href="https://cosmos.network/resources/whitepaper" target="_blank" rel="noopener">https://cosmos.network/resources/whitepaper</a></p>
<p>[55] E. Kokoris-Kogias, P. S. Jovanovic, L. Gasser, N. Gailly, E. Syta, and B. A. Ford. (2018). Omniledger: A Secure, Scale-Out, Decen- tralized Ledger Via Sharding. [Online]. Available: [Online]. Available: <a href="http://infoscience.epfl.ch/record/255586" target="_blank" rel="noopener">http://infoscience.epfl.ch/record/255586</a><br>[56] G. Danezis and S. Meiklejohn, <code>Centrally banked cryptocurrencies,’’ 2015, arXiv:1505.06895. [Online]. Available: <a href="https://arxiv.org/abs/1505.06895" target="_blank" rel="noopener">https://arxiv.org/abs/1505.06895</a><br>[57] E. Androulaki, C. Cachin, A. D. Caro, and E. Kokoris-Kogias,</code>Channels: Horizontal scaling and condentiality on permissioned blockchains,’’ in Proc. Eur. Symp. Res. Comput. Secur. (ESORICS), 2018, pp. 111-131.</p>

            <div class="post-copyright">
    <div class="content">
        <p>最后更新： 2020年03月25日 10:09</p>
        <p>原始链接： <a class="post-url" href="/2020/03/25/2020-03-25-Interledger_Approaches(选)/" title="Interledger Approaches(选)">/2020/03/25/2020-03-25-Interledger_Approaches(选)/</a></p>
        <footer>
            <a href="">
                <img src="/images/avatar/me-130x130.jpg" alt="bluarry">
                bluarry
            </a>
        </footer>
    </div>
</div>

      
        
            
<div class="page-reward">
    <a id="rewardBtn" href="javascript:;">赏</a>
</div>

<div id="reward" class="post-modal reward-lay">
    <a class="close" href="javascript:;" id="reward-close">×</a>
    <span class="reward-title">
        <i class="icon icon-quote-left"></i>
        请我吃糖~
        <i class="icon icon-quote-right"></i>
    </span>
    <div class="reward-content">
        
        <div class="reward-code">
            <img id="rewardCode" src="/images/wechat_code.jpg" alt="打赏二维码">
        </div>
        <div class="reward-select">
            
            <label class="reward-select-item checked" data-id="wechat" data-wechat="/images/wechat_code.jpg">
                <img class="reward-select-item-wechat" src="/images/wechat.png" alt="微信">
            </label>
            
            
            <label class="reward-select-item" data-id="alipay" data-alipay="/images/alipay_code.jpg">
                <img class="reward-select-item-alipay" src="/images/alipay.png" alt="支付宝">
            </label>
            
        </div>
    </div>
</div>


        
    </div>
    <footer class="article-footer">
        
        
<div class="post-share">
    <a href="javascript:;" id="share-sub" class="post-share-fab">
        <i class="fa fa-share-alt"></i>
    </a>
    <div class="post-share-list" id="share-list">
        <ul class="share-icons">
          <li>
            <a class="weibo share-sns" target="_blank" href="http://service.weibo.com/share/share.php?url=/2020/03/25/2020-03-25-Interledger_Approaches(选)/&title=《Interledger Approaches(选)》 — 探花需拔根&pic=images/avatar/me-130x130.jpg" data-title="微博">
              <i class="fa fa-weibo"></i>
            </a>
          </li>
          <li>
            <a class="weixin share-sns" id="wxFab" href="javascript:;" data-title="微信">
              <i class="fa fa-weixin"></i>
            </a>
          </li>
          <li>
            <a class="qq share-sns" target="_blank" href="http://connect.qq.com/widget/shareqq/index.html?url=/2020/03/25/2020-03-25-Interledger_Approaches(选)/&title=《Interledger Approaches(选)》 — 探花需拔根&source=有无相生,难易相成" data-title="QQ">
              <i class="fa fa-qq"></i>
            </a>
          </li>
          <li>
            <a class="facebook share-sns" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=/2020/03/25/2020-03-25-Interledger_Approaches(选)/" data-title="Facebook">
              <i class="fa fa-facebook"></i>
            </a>
          </li>
          <li>
            <a class="twitter share-sns" target="_blank" href="https://twitter.com/intent/tweet?text=《Interledger Approaches(选)》 — 探花需拔根&url=/2020/03/25/2020-03-25-Interledger_Approaches(选)/&via=" data-title="Twitter">
              <i class="fa fa-twitter"></i>
            </a>
          </li>
          <li>
            <a class="google share-sns" target="_blank" href="https://plus.google.com/share?url=/2020/03/25/2020-03-25-Interledger_Approaches(选)/" data-title="Google+">
              <i class="fa fa-google-plus"></i>
            </a>
          </li>
        </ul>
     </div>
</div>
<div class="post-modal wx-share" id="wxShare">
    <a class="close" href="javascript:;" id="wxShare-close">×</a>
    <p>扫一扫，分享到微信</p>
    <img src="" alt="微信分享二维码">
</div>

<div class="mask"></div>

        
        <ul class="article-footer-menu">
            
            
  <li class="article-footer-tags">
    <i class="fa fa-tags"></i>
      
    <a href="/tags/区块链/" class="color4">区块链</a>
      
    <a href="/tags/侧链/" class="color3">侧链</a>
      
    <a href="/tags/翻译/" class="color3">翻译</a>
      
  </li>

        </ul>
        
        

    <aside class="post-toc-pos post-toc-top" id="post-toc">
        <nav class="post-toc-wrap">
            <ol class="post-toc"><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#null"><span class="post-toc-text">SIDECHAINS</span></a><ol class="post-toc-child"><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">FEDERATED PEGS, BLOCKSTREAM&#39;S</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">ELEMENTS AND LIQUID</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">MERGED MINING AND ROOTSTOCK</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">ETHEREUM&#39;S PLASMA</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">CARDANO</span></a></li></ol></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#null"><span class="post-toc-text">LEDGER-OF-LEDGERS APPROACHES</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#null"><span class="post-toc-text">DISCUSSION AND COMPARISON</span></a><ol class="post-toc-child"><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">A. TRANSFER OR EXCHANGE OF VALUE</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">B. INTERCONNECTION TRUST MECHANISM</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">C. COMPLEXITY</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">D. SCALABILITY</span></a></li><li class="post-toc-item post-toc-level-3"><a class="post-toc-link" href="#null"><span class="post-toc-text">E. TRANSACTION COST</span></a></li></ol></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#null"><span class="post-toc-text">参考文献</span></a></li></ol>
        </nav>
    </aside>
    

<nav id="article-nav">
  
    <a href="/2020/05/18/2020-05-18-fabric根据构建脚本手动启动first-network/" id="article-nav-newer" class="article-nav-link-wrap">

      <span class="article-nav-title">
        <i class="fa fa-hand-o-left" aria-hidden="true"></i>
        
          fabric根据构建脚本手动启动first-network
        
      </span>
    </a>
  
  
    <a href="/2020/02/28/2020-02-28-xposed模块编写之常用hook函数API/" id="article-nav-older" class="article-nav-link-wrap">
      <span class="article-nav-title">xposed模块编写之常用hook函数API</span>
      <i class="fa fa-hand-o-right" aria-hidden="true"></i>
    </a>
  
</nav>




    <!-- HTML页面布局 -->
    <div id="tab-list">
        <ul id="ul1">
            
            
            
            <li id="gittalk" style="width: 25%;">gittalk</li>
            
            
            <li id="valine" style="width: 25%;">valine</li>
            
        </ul>
         
        
          
        <div id="dv_gitment" class="hide">
            <div id="git_comments"></div>;
        </div>
        
        
        <div id="dv_vment" class="show">
            <div class="comments vcomment" id="vcomments"></div>
        </div>
        
    </div>

    <script src="/js/tablist.js"></script>
   

    
        
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">
<script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script>
<script src="https://cdn.bluarry.top/cdn/js/md5.min.js"></script>
<!--<div id="git_comments"></div>-->
<script>
    // var gitment = new Gitment({
    //     owner: 'bluarry',
    //     repo: 'blog_comment',
    //     oauth: {
    //         client_id: '5c95f5b820d109c8f5c1',
    //         client_secret: 'f1cfe5b08f9a55923ba26a9ec8855b631002ad18',
    //     },
    // })
    var hrefs=location.href;
    var links=hrefs.split('/');
    var cr="";
    for (var i=0;i<Math.min(7,links.length);i++) {
        cr+=links[i];
    }
    console.log(cr);

    var gitalk = new Gitalk({
        clientID: '5c95f5b820d109c8f5c1', //Client ID
        clientSecret: 'f1cfe5b08f9a55923ba26a9ec8855b631002ad18', //Client Secret
        repo: 'blog_comment',//仓库名称
        owner: 'bluarry',//仓库拥有者
        admin: ['bluarry'],
        id: md5(cr),      // Ensure uniqueness and length less than 50
        distractionFreeMode: false  // Facebook-like distraction free mode
    });
    gitalk.render('git_comments');
</script>


    
        <!-- Valine Comments -->
<!-- <div class="comments vcomment" id="vcomments"></div>-->
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src="//unpkg.com/valine@latest/dist/Valine.min.js"></script>
<!-- Valine Comments script -->
<script>
    var GUEST_INFO = ['nick','mail','link'];
    var guest_info = 'nick,mail'.split(',').filter(function(item){
        return GUEST_INFO.indexOf(item) > -1
    });
    new Valine({
        el: '#vcomments',
        notify: 'true' == 'true',
        verify: 'false' == 'true',
        appId: "DRrkhLYTmB6QwGy6sI6vCH8C-gzGzoHsz",
        appKey: "M4A4lrKwbixQmmeO5lVdY5l2",
        avatar: "mm",
        placeholder: "少侠，留下你的评论吧",
        guest_info: guest_info.length == 0 ? GUEST_INFO : guest_info,
        pageSize: "10"
    })
</script>
<!-- Valine Comments end -->

    


    </footer>
  </div>
</article>


</section>
        
      </div>
      <footer id="footer">
  <div class="outer">
    <div id="footer-info" class="inner">
      
<p>
    <span id="busuanzi_container_site_uv" style='display:none'>
        <i class="fa fa-user"></i>&nbsp;&nbsp;<span id="busuanzi_value_site_uv"></span>
    </span>&nbsp;&nbsp;|&nbsp;&nbsp;
    <span id="busuanzi_container_site_pv" style='display:none'>
        <i class="fa fa-eye"></i> &nbsp;&nbsp;<span id="busuanzi_value_site_pv"></span>
    </span>
</p>


      <p>
      &copy; 2016-2021 &nbsp;&nbsp;<i style="color: red;" class="fa fa-heart"></i>&nbsp;&nbsp; bluarry
      备案号: <a style="color: #999;" href="http://www.beian.miit.gov.cn/" target="_blank">陕ICP备2020012959号</a>
    </p>

    </div>
  </div>
</footer>
    <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
  var mihoConfig = {
      root: "",
      animate: true,
      isHome: false,
      share: true,
      reward: 1
  }
</script>
<div class="sidebar">
    <div id="sidebar-search" title="Search">
        <i class="fa fa-search"></i>
    </div>
    <div id="sidebar-category" title="Categories">
        <i class="fa fa-book"></i>
    </div>
    <div id="sidebar-tag" title="Tags">
        <i class="fa fa-tags"></i>
    </div>
    <div id="sidebar-top">
        <span class="sidebar-top-icon"><i class="fa fa-angle-up"></i></span>
    </div>
</div>
<div class="sidebar-menu-box" id="sidebar-menu-box">
    <div class="sidebar-menu-box-container">
        <div id="sidebar-menu-box-categories">
            <a class="category-link" href="/categories/linux/">linux</a><a class="category-link" href="/categories/linux-学习/">linux 学习</a><a class="category-link" href="/categories/linux-学习-acm-onlinejudge-hustoj/">linux 学习 acm onlinejudge hustoj</a><a class="category-link" href="/categories/学习分享/">学习分享</a><a class="category-link" href="/categories/数据结构/">数据结构</a><a class="category-link" href="/categories/经验分享/">经验分享</a><a class="category-link" href="/categories/经验分享/学习分享/">学习分享</a><a class="category-link" href="/categories/默认分类/">默认分类</a><a class="category-link" href="/categories/默认分类/复习/">复习</a><a class="category-link" href="/categories/默认分类/复习/学习分享/">学习分享</a><a class="category-link" href="/categories/默认分类/学习分享/">学习分享</a><a class="category-link" href="/categories/默认分类/生活杂谈/">生活杂谈</a><a class="category-link" href="/categories/默认分类/经验分享/">经验分享</a><a class="category-link" href="/categories/默认分类/经验分享/学习分享/">学习分享</a>
        </div>
        <div id="sidebar-menu-box-tags">
            <a href="/tags/Java/" style="font-size: 10px;">Java</a> <a href="/tags/acm/" style="font-size: 12.86px;">acm</a> <a href="/tags/android/" style="font-size: 11.43px;">android</a> <a href="/tags/c/" style="font-size: 14.29px;">c++</a> <a href="/tags/fabric/" style="font-size: 11.43px;">fabric</a> <a href="/tags/kali/" style="font-size: 10px;">kali</a> <a href="/tags/linux/" style="font-size: 15.71px;">linux</a> <a href="/tags/linux学习/" style="font-size: 10px;">linux学习</a> <a href="/tags/mac/" style="font-size: 10px;">mac</a> <a href="/tags/mfc/" style="font-size: 10px;">mfc</a> <a href="/tags/onlinejudge/" style="font-size: 10px;">onlinejudge</a> <a href="/tags/sqlite/" style="font-size: 10px;">sqlite</a> <a href="/tags/sqlite3/" style="font-size: 11.43px;">sqlite3</a> <a href="/tags/ss/" style="font-size: 10px;">ss</a> <a href="/tags/vs/" style="font-size: 11.43px;">vs</a> <a href="/tags/xposed/" style="font-size: 10px;">xposed</a> <a href="/tags/xposed模块/" style="font-size: 10px;">xposed模块</a> <a href="/tags/专业知识/" style="font-size: 10px;">专业知识</a> <a href="/tags/侧链/" style="font-size: 10px;">侧链</a> <a href="/tags/内网穿透/" style="font-size: 10px;">内网穿透</a> <a href="/tags/区块链/" style="font-size: 11.43px;">区块链</a> <a href="/tags/复习/" style="font-size: 10px;">复习</a> <a href="/tags/学习/" style="font-size: 18.57px;">学习</a> <a href="/tags/安卓/" style="font-size: 12.86px;">安卓</a> <a href="/tags/小技巧/" style="font-size: 17.14px;">小技巧</a> <a href="/tags/数据库/" style="font-size: 10px;">数据库</a> <a href="/tags/数据结构/" style="font-size: 10px;">数据结构</a> <a href="/tags/日常使用问题/" style="font-size: 10px;">日常使用问题</a> <a href="/tags/最小生成树/" style="font-size: 11.43px;">最小生成树</a> <a href="/tags/最短路径/" style="font-size: 10px;">最短路径</a> <a href="/tags/比特币/" style="font-size: 11.43px;">比特币</a> <a href="/tags/算法/" style="font-size: 12.86px;">算法</a> <a href="/tags/算法笔记/" style="font-size: 11.43px;">算法笔记</a> <a href="/tags/经验/" style="font-size: 20px;">经验</a> <a href="/tags/编译原理/" style="font-size: 10px;">编译原理</a> <a href="/tags/翻译/" style="font-size: 10px;">翻译</a> <a href="/tags/自然计算/" style="font-size: 10px;">自然计算</a>
        </div>
    </div>
    <a href="javascript:;" class="sidebar-menu-box-close">&times;</a>
</div>
<div class="mobile-header-menu-nav" id="mobile-header-menu-nav">
    <div class="mobile-header-menu-container">
        <span class="title">Menus</span>
        <ul class="mobile-header-menu-navbar">
            
            <li>
                <a  href="/">
                    <i class="fa fa-home"></i><span>主页</span>
                </a>
            </li>
            
            <li>
                <a  href="/archives">
                    <i class="fa fa-archive"></i><span>归档</span>
                </a>
            </li>
            
            <li>
                <a  href="/friends">
                    <i class="fa fa-envira"></i><span>友链</span>
                </a>
            </li>
            
            <li>
                <a  href="/about">
                    <i class="fa fa-user"></i><span>关于我</span>
                </a>
            </li>
            
        </ul>
    </div>
    <div class="mobile-header-tag-container">
        <span class="title">Tags</span>
        <div id="mobile-header-container-tags">
            <a href="/tags/Java/" style="font-size: 10px;">Java</a> <a href="/tags/acm/" style="font-size: 12.86px;">acm</a> <a href="/tags/android/" style="font-size: 11.43px;">android</a> <a href="/tags/c/" style="font-size: 14.29px;">c++</a> <a href="/tags/fabric/" style="font-size: 11.43px;">fabric</a> <a href="/tags/kali/" style="font-size: 10px;">kali</a> <a href="/tags/linux/" style="font-size: 15.71px;">linux</a> <a href="/tags/linux学习/" style="font-size: 10px;">linux学习</a> <a href="/tags/mac/" style="font-size: 10px;">mac</a> <a href="/tags/mfc/" style="font-size: 10px;">mfc</a> <a href="/tags/onlinejudge/" style="font-size: 10px;">onlinejudge</a> <a href="/tags/sqlite/" style="font-size: 10px;">sqlite</a> <a href="/tags/sqlite3/" style="font-size: 11.43px;">sqlite3</a> <a href="/tags/ss/" style="font-size: 10px;">ss</a> <a href="/tags/vs/" style="font-size: 11.43px;">vs</a> <a href="/tags/xposed/" style="font-size: 10px;">xposed</a> <a href="/tags/xposed模块/" style="font-size: 10px;">xposed模块</a> <a href="/tags/专业知识/" style="font-size: 10px;">专业知识</a> <a href="/tags/侧链/" style="font-size: 10px;">侧链</a> <a href="/tags/内网穿透/" style="font-size: 10px;">内网穿透</a> <a href="/tags/区块链/" style="font-size: 11.43px;">区块链</a> <a href="/tags/复习/" style="font-size: 10px;">复习</a> <a href="/tags/学习/" style="font-size: 18.57px;">学习</a> <a href="/tags/安卓/" style="font-size: 12.86px;">安卓</a> <a href="/tags/小技巧/" style="font-size: 17.14px;">小技巧</a> <a href="/tags/数据库/" style="font-size: 10px;">数据库</a> <a href="/tags/数据结构/" style="font-size: 10px;">数据结构</a> <a href="/tags/日常使用问题/" style="font-size: 10px;">日常使用问题</a> <a href="/tags/最小生成树/" style="font-size: 11.43px;">最小生成树</a> <a href="/tags/最短路径/" style="font-size: 10px;">最短路径</a> <a href="/tags/比特币/" style="font-size: 11.43px;">比特币</a> <a href="/tags/算法/" style="font-size: 12.86px;">算法</a> <a href="/tags/算法笔记/" style="font-size: 11.43px;">算法笔记</a> <a href="/tags/经验/" style="font-size: 20px;">经验</a> <a href="/tags/编译原理/" style="font-size: 10px;">编译原理</a> <a href="/tags/翻译/" style="font-size: 10px;">翻译</a> <a href="/tags/自然计算/" style="font-size: 10px;">自然计算</a>
        </div>
    </div>
</div>
<div class="search-wrap">
    <span class="search-close">&times;</span>
        <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="back">
            <i class="icon icon-lg icon-chevron-left"></i>
        </a>
        <input class="search-field" placeholder="Search..." id="keywords">
        <a id="search-submit" href="javascript:;">
            <i class="fa fa-search"></i>
        </a>
    <div class="search-container" id="search-container">
        <ul class="search-result" id="search-result">
        </ul>
    </div>
</div>

<div id="search-tpl">
    <li class="search-result-item">
        <a href="{url}" class="search-item-li">
            <span class="search-item-li-title" title="{title}">{title}</span>
        </a>
    </li>
</div>
<script src="/js/search.js"></script>
<script src="/js/main.js"></script>


  <script src="//cdn.bootcss.com/particles.js/2.0.0/particles.min.js"></script>
  <div id="particles"></div>
  <script src="/js/particles.js"></script>







  <link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.5.0/animate.min.css">
  <script src="//cdn.bootcss.com/scrollReveal.js/3.0.5/scrollreveal.js"></script>
  <script src="/js/animate.js"></script>


  <script src="/js/pop-img.js"></script>
  <script>
     $(".article-entry p img").popImg();
  </script>

  </div>
</body>
</html>